package com.jn.erp.web.api.course.controller;


import com.jn.erp.common.core.page.TableDataInfo;
import com.jn.erp.common.core.result.AjaxResult;
import com.jn.erp.security.controller.BaseWebAuthController;
import com.jn.erp.web.api.course.entity.TCourseOrderConfig;
import com.jn.erp.web.api.course.entity.dto.TCourseOrderConfigDto;
import com.jn.erp.web.api.course.entity.vo.TCourseOrderConfigVo;
import com.jn.erp.web.api.course.service.TCourseOrderConfigService;

import com.jn.erp.web.api.student.entity.StudentClass;
import com.jn.erp.web.api.student.entity.dto.StudentClassDto;
import com.jn.erp.web.api.student.entity.vo.StudentClassVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import org.springframework.stereotype.Controller;

import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author wyp
 * @since 2024-09-03
 */
@RestController
@RequestMapping("/tCourseOrder")
public class TCourseOrderConfigController  extends BaseWebAuthController {
    @Autowired
    private TCourseOrderConfigService tCourseOrderConfigService;

    /**
     排课新增
     */
    @PostMapping("save")
    public AjaxResult save(@RequestBody TCourseOrderConfigVo tCourseOrderConfigVo){
        //机构id
        tCourseOrderConfigVo.setOrgId(Long.parseLong(loginDeptAuth()) );
        //当前登录人id
        tCourseOrderConfigVo.setCreateUser(String.valueOf(getUserId()) );
        tCourseOrderConfigVo.setIsDelete("0");
        Boolean boo = tCourseOrderConfigService.saveCourseOrder(tCourseOrderConfigVo);
        return AjaxResult.success(boo);
    }


    /**
     排课修改
     */
    @PostMapping("update")
    public AjaxResult update(@RequestBody TCourseOrderConfigVo tCourseOrderConfigVo){
        //机构id
        tCourseOrderConfigVo.setOrgId(Long.parseLong(loginDeptAuth()) );
        //当前登录人id
        tCourseOrderConfigVo.setUpdateUser(String.valueOf(getUserId()) );
        tCourseOrderConfigVo.setUpdateDate(LocalDateTime.now() );
        tCourseOrderConfigVo.setIsDelete("0");
        Boolean boo = tCourseOrderConfigService.updateCourseOrder(tCourseOrderConfigVo);
        return AjaxResult.success(boo);
    }

    /**
     排课删除
     */
    @PostMapping("delete")
    public AjaxResult delete(@RequestBody TCourseOrderConfigVo tCourseOrderConfigVo){
        //机构id
        tCourseOrderConfigVo.setOrgId(Long.parseLong(loginDeptAuth()) );
        //当前登录人id
        tCourseOrderConfigVo.setUpdateUser(String.valueOf(getUserId()) );
        tCourseOrderConfigVo.setUpdateDate(LocalDateTime.now() );
        tCourseOrderConfigVo.setIsDelete("1");
        Boolean boo = tCourseOrderConfigService.updateCourseOrder(tCourseOrderConfigVo);
        return AjaxResult.success(boo);
    }

    /**
     * 排课列表
     * */
    @GetMapping("/list")
    public TableDataInfo list( TCourseOrderConfigVo tCourseOrderConfigVo) {

        startPage();
        //机构id
        tCourseOrderConfigVo.setOrgId(Long.parseLong(loginDeptAuth()) );
        //当前登录人id
        tCourseOrderConfigVo.setCreateUser(String.valueOf(getUserId()) );

        List<TCourseOrderConfigDto> list = tCourseOrderConfigService.courseOrderConfigList(tCourseOrderConfigVo);
        return getDataTable(list);
    }

    /**
     * 排课详情
     * */
    @PostMapping("/getById")
    public AjaxResult getById(@RequestBody TCourseOrderConfigVo tCourseOrderConfigVo) {
        //机构id
        tCourseOrderConfigVo.setOrgId(Long.parseLong(loginDeptAuth()) );
        //当前登录人id
        tCourseOrderConfigVo.setCreateUser(String.valueOf(getUserId()) );
        TCourseOrderConfig tCourseOrderConfig = tCourseOrderConfigService.getCourseOrderConfig(tCourseOrderConfigVo);

        return AjaxResult.success(tCourseOrderConfig);
    }


}

